You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Several new classes and interfaces can now be subclassed:
gtk::CellEditable
gtk::CellLayout
gtk::Editable
gtk::Grid
gtk::ListStore
gtk::Orientable
gtk::Scrollable
gtk::TreeDragDest
gtk::TreeDragSource
gtk::TreeModelFilter
gtk::TreeModelSort
gtk::TreeStore
New methods and signals:
gtk::MessageDialog::with_markup(), a constructor whose message is
interpreted as Pango markup
gtk::Clipboard::connect_owner_change()
gtk::EntryExt::connect_toggle_direction() and gtk::EntryExt::emit_toggle_direction()
atk::AtkObjectExt::accessible_help_text(), set_accessible_help_text(), connect_accessible_help_text_notify(), and connect_accessible_id_notify()
accessible_id() and accessible_help_text() on the builders for gtk::HeaderBarAccessible, gtk::PlugAccessible, and gtk::SocketAccessible
Builders are now generated for gtk::EventControllerKey, gtk::EventControllerMotion, gtk::EventControllerScroll, gtk::FileChooserWidgetAccessible, gtk::GestureStylus, gtk::Settings, and gtk::ShortcutLabel.
New feature flags:
atk's v2_52 adds atk::AtkObjectExt::help_text(), set_help_text(), connect_attribute_changed(), and atk::DocumentExt::connect_document_attribute_changed().
gtk's gio_v2_80 adds a version() method to gtk::Application's builder.
gtk's v3_22 enables gtk::FileChooserExtManual::add_choice(),
which was previously unreachable because no crate defined the
feature.
atk::Role has a new Switch variant.
The hand-written *ExtManual and subclass *ImplExt traits are no
longer sealed with a private sealed::Sealed supertrait, matching
the generated *Ext traits. They still cannot be implemented
downstream, as the blanket impls already prevent it. *ImplExt
traits are now declared as FooImplExt: FooImpl, so their parent_*() methods are reached through the blanket impl rather than
as supertrait methods. Code that uses gtk::subclass::prelude::* is
unaffected, but code that imports subclassing traits individually
must also import FooImplExt to call parent_*().
Subclassing support for the following have been enhanced:
gtk::Container: ContainerImpl can now declare and implement
child properties:
child_properties()
child_property()
set_child_property()
gtk::TreeView: this used to be subclassable, but no vfuncs were
overridable; now all are.
gtk::Widget: WidgetImpl gained overrides for many
previously-missing vfuncs:
can_activate_accel()
event()
focus()
focus_in_event()
focus_out_event()
grab_broken_event()
grab_focus()
grab_notify()
hide()
hierarchy_changed()
key_press_event()
key_release_event()
keynav_failed()
map_event()
mnemonic_activate()
move_focus()
parent_set()
popup_menu()
preferred_height_and_baseline_for_width()
property_notify_event()
proximity_in_event()
proximity_out_event()
query_tooltip()
queue_draw_region()
screen_changed()
selection_clear_event()
selection_get()
selection_notify_event()
selection_received()
selection_request_event()
show()
show_all()
show_help()
state_flags_changed()
style_updated()
touch_event()
unmap_event()
visibility_notify_event()
WidgetClassSubclassExt::set_accessible_type() and WidgetClassSubclassExt::set_accessible_role() allow a subclass
to declare the accessibility type and role it presents.
WidgetClassSubclassExt::enable_baseline_support() opts a
subclass into baseline support. Subclasses must call this in
order for WidgetImpl::preferred_height_and_baseline_for_width()
to be used instead of the non-baseline vfuncs.
Breaking Changes
All crates depend on v0.22 of the gtk-rs-core crates. Applications
using gtk3-rs 0.18 or below must update any references to those
crates.
atk::Role::PushButton is now atk::Role::Button, following the
rename in ATK itself. The value is unchanged, and atk-sys still
exports ATK_ROLE_PUSH_BUTTON alongside ATK_ROLE_BUTTON.
The LastDefined variants have been removed from atk::RelationType, atk::Role, atk::TextAttribute, and atk::ValueType, along with
the corresponding ATK_*_LAST_DEFINED constants in atk-sys. These
are sentinels marking the end of the value range, and aren't useful in
Rust code.
Subclasses of gtk::Stack must now implement gtk::subclass::prelude::StackImpl. Its IsSubclassable impl was
bounded on ContainerImpl, so implementing StackImpl was documented
but not actually enforced.
Every subclassing Impl trait now requires the implementing type to
name the matching class in its glib::wrapper!@extends list. For
example, ContainerImpl is now declared as `ContainerImpl: WidgetImpl
ObjectSubclass<Type: IsA>. A subclass whose @extends`
list skips an ancestor still compiled before, but no longer does;
add the missing types to it.
gtk::Application's builder no longer has an action_group() method.
GIO now marks the action-group property deprecated since 2.32, which
is below the GIO version gtk3-rs requires, so gir no longer
generates it. Use the gio::prelude::ActionMapExt methods on the
built gtk::Application instead.
gtk::RecentInfo::added(), gtk::RecentInfo::modified(), and gtk::RecentInfo::visited() now return libc::time_t instead of libc::c_long, as does the last element of the tuple returned by gtk::RecentInfo::application_info(). The two are the same type on
64-bit Linux and on macOS, but differ on Windows and on 32-bit targets
with a 64-bit time_t, where the previous signature was wrong.
gtk::Widget::can_activate_accel() now takes a SignalId for the signal_id argument instead of u32.
The closure passed to gtk::Widget::connect_can_activate_accel() now
takes a SignalId for the signal_id argument instead of a u32.
can_activate_accel() and connect_can_activate_accel() have moved
from gtk::prelude::WidgetExt to gtk::prelude::WidgetExtManual.
Code using gtk::prelude::* is unaffected, but code that imports WidgetExt by name, or that calls either method through it, must be
updated.
gtk::WindowExt::type_() has been removed, because it awkwardly
conflicts with glib::ObjectExt::type_(). Use gtk::WindowExt::window_type() instead.
The hand-written MessageDialogExt has been renamed to MessageDialogExtManual, and its methods now match the C functions
they call: set_secondary_markup() is now format_secondary_markup(), and set_secondary_text() is now format_secondary_text(). It previously shared its name with the
generated MessageDialogExt while being re-exported as gtk::MessageDialogExt instead of through the prelude, so importing
it silently replaced the generated trait. Both are now in the
prelude. Note that format_secondary_text() also clears secondary-use-markup, which the generated set_secondary_text()
property setter does not.
The opaque class and interface type aliases in atk-sys, gdk-sys,
and gdkx11-sys are no longer pointers. For example, GdkFrameClockClass is now _GdkFrameClockClass rather than *mut _GdkFrameClockClass.
gdkx11-sys: the optional cairo feature is gone. cairo-sys is
now an unconditional dependency, and v3_24_2 no longer enables it.
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: src-tauri/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path src-tauri/Cargo.toml --workspace
Updating crates.io index
Updating git repository `https://github.com/tauri-apps/fix-path-env-rs`
Updating git repository `https://github.com/tauri-apps/plugins-workspace`
error: failed to select a version for `gdk-sys`.
... required by package `gtk-sys v0.18.0`
... which satisfies dependency `ffi = "^0.18"` of package `gtk v0.18.0`
... which satisfies dependency `gtk = "^0.18"` of package `phoenix-code-ide v3.7.2 (/tmp/renovate/repos/github/phcode-dev/phoenix-desktop/src-tauri)`
versions that meet the requirements `^0.18` are: 0.18.0
the package `gdk-sys` links to the native library `gdk-3`, but it conflicts with a previous package which links to `gdk-3` as well:
package `gdk-sys v0.15.1`
... which satisfies dependency `gdk-sys = "^0.15.0"` of package `webkit2gtk v0.18.2`
... which satisfies dependency `webkit2gtk = "^0.18.2"` of package `tauri v1.6.2`
... which satisfies dependency `tauri = "^1.6.2"` of package `phoenix-code-ide v3.7.2 (/tmp/renovate/repos/github/phcode-dev/phoenix-desktop/src-tauri)`
Only one package in the dependency graph may specify the same links value. This helps ensure that only one copy of a native library is linked in the final binary. Try to adjust your dependencies so that only one package uses the `links = "gdk-3"` value. For more information, see https://doc.rust-lang.org/cargo/reference/resolver.html#links.
failed to select a version for `gdk-sys` which could resolve this conflict
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: src-tauri/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path src-tauri/Cargo.toml --workspace
Updating crates.io index
Updating git repository `https://github.com/tauri-apps/fix-path-env-rs`
From https://github.com/tauri-apps/fix-path-env-rs
* [new ref] 8481725b7ebfc56cdb052d522517421242eac36b -> refs/commit/8481725b7ebfc56cdb052d522517421242eac36b
Updating git repository `https://github.com/tauri-apps/plugins-workspace`
From https://github.com/tauri-apps/plugins-workspace
* [new ref] 184f4edbbcfed8f8c057a15e02318e0ddcaab132 -> refs/commit/184f4edbbcfed8f8c057a15e02318e0ddcaab132
error: failed to select a version for `gdk-sys`.
... required by package `webkit2gtk v0.18.0`
... which satisfies dependency `webkit2gtk = "^0.18"` of package `phoenix-code-ide v5.2.5 (/tmp/renovate/repos/github/phcode-dev/phoenix-desktop/src-tauri)`
versions that meet the requirements `^0.15.0` are: 0.15.1
package `gdk-sys` links to the native library `gdk-3`, but it conflicts with a previous package which links to `gdk-3` as well:
package `gdk-sys v0.19.0`
... which satisfies dependency `gdk-sys = "^0.19.0"` of package `gdk v0.19.0`
... which satisfies dependency `gdk = "^0.19.0"` of package `gtk v0.19.0`
... which satisfies dependency `gtk = "^0.19"` of package `phoenix-code-ide v5.2.5 (/tmp/renovate/repos/github/phcode-dev/phoenix-desktop/src-tauri)`
note: only one package in the dependency graph may specify the same links value to ensure that only one copy of a native library is linked in the final binary
for more information, see https://doc.rust-lang.org/cargo/reference/resolver.html#links
help: try to adjust your dependencies so that only one package uses the `links = "gdk-3"` value
failed to select a version for `gdk-sys` which could resolve this conflict
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.15→0.19Release Notes
gtk-rs/gtk3-rs (gtk)
v0.19.0Features
gtk::CellEditablegtk::CellLayoutgtk::Editablegtk::Gridgtk::ListStoregtk::Orientablegtk::Scrollablegtk::TreeDragDestgtk::TreeDragSourcegtk::TreeModelFiltergtk::TreeModelSortgtk::TreeStoregtk::MessageDialog::with_markup(), a constructor whose message isinterpreted as Pango markup
gtk::Clipboard::connect_owner_change()gtk::EntryExt::connect_toggle_direction()andgtk::EntryExt::emit_toggle_direction()atk::AtkObjectExt::accessible_help_text(),set_accessible_help_text(),connect_accessible_help_text_notify(), andconnect_accessible_id_notify()accessible_id()andaccessible_help_text()on the builders forgtk::HeaderBarAccessible,gtk::PlugAccessible, andgtk::SocketAccessiblegtk::EventControllerKey,gtk::EventControllerMotion,gtk::EventControllerScroll,gtk::FileChooserWidgetAccessible,gtk::GestureStylus,gtk::Settings, andgtk::ShortcutLabel.atk'sv2_52addsatk::AtkObjectExt::help_text(),set_help_text(),connect_attribute_changed(), andatk::DocumentExt::connect_document_attribute_changed().gtk'sgio_v2_80adds aversion()method togtk::Application's builder.gtk'sv3_22enablesgtk::FileChooserExtManual::add_choice(),which was previously unreachable because no crate defined the
feature.
atk::Rolehas a newSwitchvariant.*ExtManualand subclass*ImplExttraits are nolonger sealed with a private
sealed::Sealedsupertrait, matchingthe generated
*Exttraits. They still cannot be implementeddownstream, as the blanket impls already prevent it.
*ImplExttraits are now declared as
FooImplExt: FooImpl, so theirparent_*()methods are reached through the blanket impl rather thanas supertrait methods. Code that uses
gtk::subclass::prelude::*isunaffected, but code that imports subclassing traits individually
must also import
FooImplExtto callparent_*().gtk::Container:ContainerImplcan now declare and implementchild properties:
child_properties()child_property()set_child_property()gtk::TreeView: this used to be subclassable, but no vfuncs wereoverridable; now all are.
gtk::Widget:WidgetImplgained overrides for manypreviously-missing vfuncs:
can_activate_accel()event()focus()focus_in_event()focus_out_event()grab_broken_event()grab_focus()grab_notify()hide()hierarchy_changed()key_press_event()key_release_event()keynav_failed()map_event()mnemonic_activate()move_focus()parent_set()popup_menu()preferred_height_and_baseline_for_width()property_notify_event()proximity_in_event()proximity_out_event()query_tooltip()queue_draw_region()screen_changed()selection_clear_event()selection_get()selection_notify_event()selection_received()selection_request_event()show()show_all()show_help()state_flags_changed()style_updated()touch_event()unmap_event()visibility_notify_event()WidgetClassSubclassExt::set_accessible_type()andWidgetClassSubclassExt::set_accessible_role()allow a subclassto declare the accessibility type and role it presents.
WidgetClassSubclassExt::enable_baseline_support()opts asubclass into baseline support. Subclasses must call this in
order for
WidgetImpl::preferred_height_and_baseline_for_width()to be used instead of the non-baseline vfuncs.
Breaking Changes
gtk-rs-corecrates. Applicationsusing
gtk3-rs0.18 or below must update any references to thosecrates.
atk::Role::PushButtonis nowatk::Role::Button, following therename in ATK itself. The value is unchanged, and
atk-sysstillexports
ATK_ROLE_PUSH_BUTTONalongsideATK_ROLE_BUTTON.LastDefinedvariants have been removed fromatk::RelationType,atk::Role,atk::TextAttribute, andatk::ValueType, along withthe corresponding
ATK_*_LAST_DEFINEDconstants inatk-sys. Theseare sentinels marking the end of the value range, and aren't useful in
Rust code.
gtk::Stackmust now implementgtk::subclass::prelude::StackImpl. ItsIsSubclassableimpl wasbounded on
ContainerImpl, so implementingStackImplwas documentedbut not actually enforced.
Impltrait now requires the implementing type toname the matching class in its
glib::wrapper!@extendslist. Forexample,
ContainerImplis now declared as `ContainerImpl: WidgetImpl. A subclass whose@extends`list skips an ancestor still compiled before, but no longer does;
add the missing types to it.
gtk::Application's builder no longer has anaction_group()method.GIO now marks the
action-groupproperty deprecated since 2.32, whichis below the GIO version
gtk3-rsrequires, sogirno longergenerates it. Use the
gio::prelude::ActionMapExtmethods on thebuilt
gtk::Applicationinstead.gtk::RecentInfo::added(),gtk::RecentInfo::modified(), andgtk::RecentInfo::visited()now returnlibc::time_tinstead oflibc::c_long, as does the last element of the tuple returned bygtk::RecentInfo::application_info(). The two are the same type on64-bit Linux and on macOS, but differ on Windows and on 32-bit targets
with a 64-bit
time_t, where the previous signature was wrong.gtk::Widget::can_activate_accel()now takes aSignalIdfor thesignal_idargument instead ofu32.gtk::Widget::connect_can_activate_accel()nowtakes a
SignalIdfor thesignal_idargument instead of au32.can_activate_accel()andconnect_can_activate_accel()have movedfrom
gtk::prelude::WidgetExttogtk::prelude::WidgetExtManual.Code using
gtk::prelude::*is unaffected, but code that importsWidgetExtby name, or that calls either method through it, must beupdated.
gtk::WindowExt::type_()has been removed, because it awkwardlyconflicts with
glib::ObjectExt::type_(). Usegtk::WindowExt::window_type()instead.MessageDialogExthas been renamed toMessageDialogExtManual, and its methods now match the C functionsthey call:
set_secondary_markup()is nowformat_secondary_markup(), andset_secondary_text()is nowformat_secondary_text(). It previously shared its name with thegenerated
MessageDialogExtwhile being re-exported asgtk::MessageDialogExtinstead of through the prelude, so importingit silently replaced the generated trait. Both are now in the
prelude. Note that
format_secondary_text()also clearssecondary-use-markup, which the generatedset_secondary_text()property setter does not.
atk-sys,gdk-sys,and
gdkx11-sysare no longer pointers. For example,GdkFrameClockClassis now_GdkFrameClockClassrather than*mut _GdkFrameClockClass.gdkx11-sys: the optionalcairofeature is gone.cairo-sysisnow an unconditional dependency, and
v3_24_2no longer enables it.v0.18.1Compare Source
v0.18.0Compare Source
What's Changed
--generate-link-to-definitionoption when building on docs.rs by @GuillaumeGomez in #829New Contributors
Full Changelog: gtk-rs/gtk3-rs@0.17.1...0.18.0
v0.17.1Compare Source
What's Changed
Full Changelog: gtk-rs/gtk3-rs@0.17.0...0.17.1
v0.17.0What's Changed
Object<T>::as_mut()without unsafe, and a couple other small things by @ids1024 in #16cargo fmtby @GuillaumeGomez in #22blackby @MarijnS95 in #176Settings::bind_with_mapping()binding by @ids1024 in #210Object::new_subclass()function by @ids1024 in #219glib-compile-resourceswrapper, and macro to include by @ids1024 in #261GBoxednot require importingBoxedTypeby @ids1024 in #275enter_notify_eventandleave_notify_eventtoWidgetImplby @ids1024 in #334#[object_subclass]proc macro. by @ids1024 in #335type_data()andget_type()to newunsafe traitby @ids1024 in #338drag-motionanddrag-dropsignals returnboolinstead ofInhibitby @SolraBizna in #361Gir.tomlfiles instead of using "-d" by default on gir by @GuillaumeGomez in #366DBusProxyassend+syncand regenerate by @ids1024 in #422WidgetClassSubclassExt::{css_name,set_css_name}by @ids1024 in #476glib::StaticTypeis in scope in the gener… by @sdroege in #482componentsto install clippy by @MarijnS95 in #485FromandTryFromimplementations for working withCharby @ids1024 in #494gtk_container_class_handle_border_width()by @ids1024 in #497Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.